summaryrefslogtreecommitdiff
path: root/apps/web/src/app/editor/[project_id]
Commit message (Collapse)AuthorAgeFilesLines
* [Editor] Prevent excessive project creation from invalid routesnaoNao892025-07-311-7/+78
| | | | | | | | | | | | | | | | | | | | | Race conditions in useEffect hook caused navigation to invalid project IDs to create multiple 'Untitled Project' entries. Users reported accumulating 885+ projects due to this bug. This change adds global invalid project ID tracking across component remounts and prevents race conditions through: - Global invalidProjectIds Set in project store with tracking functions - isInitializingRef to prevent duplicate initialization attempts - Proper useEffect cleanup with cancellation tokens - Specific error handling for 'not found' vs recoverable errors - Removed problematic activeProject?.id dependency Testing: - Add comprehensive test suite (15 tests) with Vitest + React Testing Library - Include integration tests demonstrating bug and validating fix - Update CI pipeline to run automated tests Fixes #182
* feat: onboardingMaze Winther2025-07-201-2/+2
|
* remove onboardingMaze Winther2025-07-161-6/+0
|
* cleanupMaze Winther2025-07-161-2/+9
|
* fix(web): #268 multiple new projects bugSimon Orzel2025-07-151-13/+26
|
* fix: spacingMaze Winther2025-07-121-2/+2
|
* fix: enhance layout of editor and resizable components for better usabilityAnwarul Islam2025-07-121-3/+4
|
* fix: improve layout and styling of resizable panelsAnwarul Islam2025-07-121-4/+3
|
* formattingMaze Winther2025-07-101-1/+4
|
* fix: make panels resizableMaze Winther2025-07-091-2/+2
|
* style: completely fresh ui in editorMaze Winther2025-07-091-4/+3
|
* shipping too hardMaze Winther2025-07-081-4/+6
|
* refactor: store media relative to project, add storage for timeline data, ↵Maze Winther2025-07-071-5/+18
| | | | and other things
* refactor: remove unused importsMaze Winther2025-06-301-2/+0
|
* feat: implement project management features with storage integration, ↵Maze Winther2025-06-301-0/+116
including project creation, deletion, and renaming dialogs